package com.cyf.pay.wxpay.service;

import com.cyf.pay.wxpay.bean.*;

import java.text.ParseException;

/**
 * 微信支付接口
 * Created by cage on 2017/2/22.
 */
public interface WxpayService {

    /**
     * 统一下单,会自动签名和补上noce_str
     * @param req 下单请求
     * @return 下单后返回信息
     */
    WxpayUnifiedOrderRsp unifiedOrder(WxpayUnifiedOrderReq req);

    /**
     * 获取带签名的App支付信息
     * @param wxpayUnifiedOrderRsp  统一下单结果
     * @return 带签名的客户端支付信息
     */
    PreparedPayReq getPreparedPayReq(WxpayUnifiedOrderRsp wxpayUnifiedOrderRsp);

    /**
     * app微信支付：异步结果通知
     * @param req
     * @return
     */
    WxpayNotifyRsp payNotify(WxpayNotifyReq req);

    /**
     * app微信支付：异步结果通知
     * @param req
     * @return
     */
    WxpayNotifyRsp monthlyPayNotify(WxpayNotifyReq req);

    /**
     * app微信支付：查询订单
     * @param req
     * @return
     */
    WxpayQueryOrderRsp queryOrder(WxpayQueryOrderReq req);

    /**
     * 获取二维码码串
     * @param orderNo   订单号
     * @param fee       费用（分）
     * @param reqIp     请求的ip
     * @param subject   商品名称
     */
    WxpayUnifiedOrderRsp getQrcode(String orderNo, int fee, String reqIp, String subject);

    /**
     * 关闭订单
     * @param orderNo
     */
    WxpayCloseOrderRsp closeOrder(String orderNo);


}
